The present invention relates to voice coding systems.
A very large range of applications exists for voice coding systems, including voice mail in microcomputer networks, voice mail sent and received over telephone lines by microcomputers, user-programmed synthetic speech, etc.
In particular, the requirements of many of these applications are quite different from those of simple speech synthesis applications (such as a Speak & Spell) (TM)), wherein synthetic speech can be carefully encoded and then stored in a ROM or on disk. In such applications, high speed computers with elaborate algorithms, combined with hand tweaking, can be used to optimize encoded speech for good intelligibility and low bit requirements. However, in many other requirements, the speech encoding step does not have such large resources available. This is most obviously true in voice mail microcomputer networks, but it is also important in applications where a user may wish to generate his own reminder messages, diagnostic messages, signals during program operation, etc. For example, a microcomputer system wherein the user could generate synthetic speech messages in his own software would be highly desirable, not only for the individual user, but also for the software production houses which do not have trained speech scientists available.
A particular problem in such applications is energy variation. That is, not only will a speaker's voice intensity typically contain a large dynamic range related to sentence inflection, but different speakers will have different volume levels, and the same speaker's voice level may vary widely at different times. Untrained speakers are especially likely to use nonuniform uncontrolled variations in volume, which the listener normally ignores. This large dynamic range would mean that the voice coding method used must accommodate a wide dynamic range, and therefore an increased number of bits would be required for coding at reasonable resolution.
However, if energy normalization can be used (i.e. all speech adjusted to approximately a constant energy level) these problems are ameliorated.
Energy normalization also improves the intelligibility of the speech received. That is, the dynamic range available from audio amplifiers and loudspeakers is much less than that which can easily be perceived by the human ear. In fact, the dynamic range of loudspeakers is typically much less than that of microphones. This means that a dynamic range which is perfectly intelligible to a human listener may be hard to understand if communicated through a loudspeaker, even if absolutely perfect encoding and decoding is used.
The problem of intelligibility is particularly acute with audio amplifiers and loudspeakers which are not of extremely high fidelity. However, compact low-fidelity loudspeakers must be used in most of the most attractive applications for voice analysis/synthesis, for reasons of compactness, ruggedness, and economy.
A further desideratum is that, in many attractive applications, the person listening to synthesized speech should not be required to twiddle a volume control frequently. Where a volume control is available, dynamic range can be analog-adjusted for each received synthetic speech signal, to shift the narrow window provided by the loudspeaker's narrow dynamic range, but this is obviously undesirable for voice mail systems and many other applications.
In the prior art, analog automatic gain controls have been used to achieve energy normalization of raw signals. However, analog automatic gain controls distort the signal input to the analog to digital converter. That is, where (e.g.) reflection coefficients are used to encode speech data, use of an automatic gain control in the analog signal will introduce error into the calculated reflection coefficients. While it is hard to analyze the nature of this error, error is in fact introduced. Moreover, use of an analog automatic gain control requires an analog part, and every introduction of special analog parts into a digital system greatly increases the cost of the digital system. If an AGC circuit having a fast response is used, the energy levels of consecutive allophones may be inappropriate. For example, in the word "six" the sibilant /s/ will normally show a much lower energy than the vowel /i/. If a fast-response AGC circuit is used, the energy-normalized-word "six" is left with a sound extremely hissy, since the initial /s/ will be raised to the same energy as the /i/, inappropriately. Even if a slower-response AGC circuit is used, substantial problems still may exist, such as raising the noise floor up to signal levels during periods of silence, or inadequate limiting of a loud utterance following a silent period.
Thus it is an object of the present invention to provide a digital system which can perform energy normalization of voice signals.
It is a further object of the present invention to provide a method for energy normalization of voice signals which will not overemphasize initial constants.
It is a further object of the present invention to provide a method for energy normalization of voice signals which can rapidly respond to energy variations in a speaker's utterance, without excessively distorting the relative energy levels of adjacent allophones with an utterance.
A further general problem with energy normalization is caused by the existence of noise during silent periods. That is, if an energy normalization system brings the noise floor up towards the expected normal energy level during periods when no speech signal is present, the intelligibility of speech will be degraded and the speech will be unpleasant to listen to. In addition, substantial bandwidth will be wasted encoding noise signals during speech silence periods.
It is a further object of the present invention to provide a voice coding system which will not waste bandwidth on encoding noise during silent periods.
The present invention solves the problems of energy normalization digitally, by using look-ahead energy normalization. That is, an adaptive energy normalization parameter is carried from frame to frame during a speech analysis portion of an analysis-synthesis system. Speech frames are buffered for a fairly long period, e.g. 1/2 second, and then are normalized according to the current energy normalization parameter. That is, energy normalization is "look ahead" normalization in that each frame of speech (e.g. each 20 millisecond interval of speech) is normalized according to the energy normalization value from much later, e.g. from 25 frames later. The energy normalization value is calculated for the frames as received by using a fast-rising slow-falling peak-tracking value.
In a further aspect of the present invention, a novel silence suppression scheme is used. Silence suppression is achieved by tracking 2 additional energy contours. One contour is a slow-rising fast-falling value, which is updated only during unvoiced speech frames, and therefore tracks a lower envelope of the energy contour. (This in effect tracks the ambient noise level.) The other parameter is a fast-rising slow-falling parameter, which is updated only during voiced speech frames, and thus tracks an upper envelope of the energy contour. (This in effect tracks the average speech level.) A threshold value is calculated as the maximum of respective multiples of these 2 parameters, e.g. the greater of: (5 times the lower envelope parameter), and (one fifth of the upper envelope parameter). Speech is not considered to have begun unless a first frame which both has an energy above the threshold level and is also voiced is detected. In that case, the system then backtracks among the buffered frames to include as "speech" all immediately preceding frames which also have energy greater than the threshold. That is, after a period during which the frames of parameters received have been identified as silent frames, all succeeding frames are tentively identified as silent frames, until a super-threshold-energy voiced frame is found. At that point, the silence suppression system backtracks among frames immediately preceding this super-threshold energy voiced frame until an broken string subthreshold-energy frames at least to 0.4 seconds long is found. When such a 0.4 second interval of silence is found, backtracking ceases, and only those frames after the 0.4 seconds of silence and before the first voiced super-threshold energy frame are identified as non-silent frames.
At the end of speech, when a voiced frame is detected having an energy below the threshold T, a waiting counter is started. If the waiting reaches an upper limit (e.g. 0.4 seconds), without the energy again increasing above T, the utterance is considered to have stopped. The significance of the speech/silence decision is that bits are not wasted on encoding silent frames, energy tracking is not distorted by the presence of silent frames as discussed above, and long utterances can be input from an untrained speakers, who are likely to leave very long silences between consecutive words in a sentence.